<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@include file="/commons/include/html_doctype.html"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@include file="/commons/page/codegen.jsp"%>

<style type="text/css">


</style>
<title>部门管理列表</title>
</head>
<body>


	
			<div class="tree-toolbar">
				<a class="btn btn-primary fa" title="全选"  onclick="checkall();" >全选</a> 
				<a class="btn btn-primary fa" title="取消"  onclick="cancel();" >取消</a> 
				<a class="btn btn-primary fa" title="保存" onclick="save();">保存</a>
			</div>
			
	<div id="leftTree" class="">
		<ul id="channelTree" class="ztree">
		</ul>
	</div>






	<script type="text/javascript">
	    var zTreeObj;

		var setting = {

			view : {
				selectedMulti : true, //设置是否能够同时选中多个节点

				showIcon : true, //设置是否显示节点图标

				showLine : true, //设置是否显示节点与节点之间的连线

				showTitle : true, //设置是否显示节点的title提示信息
			},

			data : {
				simpleData : {
					enable : true, //设置是否启用简单数据格式（zTree支持标准数据格式跟简单数据格式，上面例子中是标准数据格式）		
					idKey : "id", //设置启用简单数据格式时id对应的属性名称								  
					pIdKey : "pid", //设置启用简单数据格式时parentId对应的属性名称,ztree根据id及pid层级关系构建树结构
					rootPId : "0",//根节点ID
				},
				key : {
					name : "name"
				}

			},

			check : {
				//设置是否显示checkbox复选框
				enable : true			
			},
			callback: {
				  onAsyncSuccess : ztreeOnAsyncSuccess,

				  onClick: onClick,  //定义节点单击事件回调函数
			
				  onDblClick: onDblClick, //定义节点双击事件回调函数

				  onCheck: onCheck  //定义节点复选框选中或取消选中事件的回调函数

			},
			async: {

				  enable: true,   //设置启用异步加载

				  type: "get",   //异步加载类型:post和get

				  contentType: "application/json", //定义ajax提交参数的参数类型，一般为json格式

				  url: "${ctx}/rdp/area/zone/getTreeData.htm"  //定义数据请求路径

				 // autoParam: ["id=id", "name=name"] //定义提交时参数的名称，=号前面标识节点属性，后面标识提交时json数据中参数的名称

			 }

		};
		var account='${type}';
		
		
		$(document).ready(function() {
			zTreeObj = $.fn.zTree.init($("#channelTree"), setting);
			
		
			
	

			
		});

		function ztreeOnAsyncSuccess(){
			//zTreeObj.expandAll(true);
			
	//处理回显
			
			//查询出zonid 数值回到前台
			 var pid;
				$.ajax({//根据page去后台加载数据
					url : '${ctx}'+"/rdp/zonepermission/zonePermission/getZone?account="+account,
					type : "get",
					dataType : "json",
					success : function(data) {
						console.log(data);
							  var objs = $.parseJSON( JSON.stringify(data));
							  
							  if(objs==null ){
								  alert("记录为空！");
								   return;
								  
							  }else{ //查询出该用户的区域列表
								  var aa;
							          // var objA=objs.rows;    
								     zTreeObj.expandAll(true);
								     for(var i=0;i<objs.length;i++){ //调试有问题
									
							        	   pid = objs[i]['zoneid'];
							        	  // alert(pid);
							        	   //alert(typeof(pid));
							        	   obj=pid.split(',');  //这块没想到
							        		//alert(obj); 
							        		console.log(obj);
							        		
							        	    for(var j = 0; j < obj.length; j++){
							        		      // var aa = zTreeObj.getNodeByParam("id","0");
								        		    aa = zTreeObj.getNodeByParam("id",obj[j]); //这里API 不熟悉
													//勾选当前选中的节点
													//console.log(aa);
													zTreeObj.checkNode(aa, true, false);
									        		 	//显示  
							        	   }
									     
							           }
							      
							  }
					}
				});
			
		}
		
		
		function getDeptTreeData() {
			var treeData = [];
			var url = "${ctx}/rdp/area/zone/getTreeData";
			$.ajax({
				url : url,
				type : "GET",
				contentType : "application/json",
				dataType : "json",
				async : false,
				success : function(data) {
					treeData = data;
				}
			});
			return treeData;
		}

		function onClick() {
			
		}
		
		function onDblClick() {

		}
		
		
		var idstr;
		
		function getcheck(){
			  var treeObj = $.fn.zTree.getZTreeObj("channelTree"); //获取树对象
			  var nodes = treeObj.getCheckedNodes(true); 
			  var designIds = [];
			  $.each(nodes, function (i, item) {
				  //if (!item.isParent){
					  designIds.push(item.id);   //選中的叶子节点
				  //}			     
			  });			  
			  
			  console.log(designIds);
			   idStr = designIds.toString(); 	
			   return idStr;
		}
		
		
		function onCheck() {
			//alert("选择执行");
			getcheck();
		}
		
		
		
		
		
		//全选
		function checkall(){
			 //全选
            //alert("全选执行");
                var zTree = $.fn.zTree.getZTreeObj("channelTree");//得到tree对象 treeMenu是我的treeid
                var node = zTree.getNodes();//得到全部节点
                var nodes = zTree.transformToArray(node);//全部节点转换成数组array
                var checkNode = zTree.getCheckedNodes().length;//得到被选中的节点数量,zTree.getCheckedNodes()和zTree.getCheckedNodes(true)一样,可以传参(true/false),默认是true

                if (checkNode < nodes.length) {//已选中的节点数小于总数 - 全选
                    $('#all').prop('checked', true)
                    zTree.checkAllNodes(true);//给全部节点设置为true
                } else{
                    zTree.checkAllNodes(false);//给全部节点设置为false
                }
         

		}
		
		//取消
		function cancel(){
		//	alert("取消执行");
			//清空
			                var zTree = $.fn.zTree.getZTreeObj("channelTree");//ztree对象
			                zTree.checkAllNodes(false);//设置全部为false,不选中节点
			                alert("点击保存后生效！");
			          

		}
		
		
		//保存操作
		function save(){
			
			//alert("保存执行");
			idstr=getcheck();
			//获取选择节点保存并会显示
			//alert("alert idstr="+idstr);
			
			//获取account 和zoneid,
			
			//校验选择的zoneid
			if(null==idstr|| idstr.length==0){
				  DialogUtil.confirm('请选择区域' + '',
							function(rtn) {
							if(rtn){
								window.location.reload(true);
										   
							}   
							else{
								
							}
						    	
							});
			}
			
		//	alert("account="+account);
			//调用action 保存
			   $.ajax({
		    	         	   type: "GET",
		    	         	   url: '${ctx}'+"/rdp/zonepermission/zonePermission/save?account="+account+"&idstr="+idstr,
		    	         	    async: false,//使用同步操作，否则init方法执行时setting可能还未被赋值
		    	         	   success: function(data) {
		    	         		 // alert(data);
		    	         		  console.log(data);
		    	         		 var jsonobj=JSON.parse(data);
		    	         		   //alert("data.result="+jsonobj.result);  //这点要转化成json 对象
		    	         		    if(jsonobj.result==1){
		    	         		    
		    	         		    	 //alert("保存执行成功！");
		    	         		    	

		    	        			/* 	DialogUtil.confirm(data.message,
		    	        					function(rtn) {
		    	        					if(rtn)
		    	        						window.location.reload(true);
		    	        					else{}
		    	        						
		    	        					}); */
		    	         		       DialogUtil.confirm(jsonobj.message + ',是否继续操作',
												function(rtn) {
												if(rtn){
													window.location.reload(true);
															   
												}   
												else{
													
												}
											    	
												});
		    	        				
		    	         		    }else{
		    	         		    	 DialogUtil.confirm(jsonobj.message + ',是否继续操作',
													function(rtn) {
													if(rtn){
														window.location.reload(true);
																   
													}   
													else{
														
													}
												    	
													});
		    	         		    	//alert("保存执行异常！");
		    	         		    }
		    	         	         
		    	         	  },
		    	         	 error: function(){
		    	         		  alert("保存执行失败！");
		    	              }
		    	         	 
		    	         	 });  
		    	         	 //end
			
			
		}
		
	</script>

</body>

</html>